//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "uTauxEur.h"
#include "CDevise.h"
#include "eic.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CBitBtn"
#pragma resource "*.dfm"
//---------------------------------------------------------------------------
#define MODULE_TAG 9540
//---------------------------------------------------------------------------
void __fastcall DeviseShowTauxEuro(void)
{
  TfrmTauxEuro *frmTauxEuro = NULL;
  try {
    frmTauxEuro = new TfrmTauxEuro();
    frmTauxEuro->ShowModal();
  } catch (Exception &e) {
    EICDisplayException(TAG(5), e);
  }
  delete frmTauxEuro;
}
//---------------------------------------------------------------------------
__fastcall TfrmTauxEuro::TfrmTauxEuro(TComponent* Owner /* = NULL */)
    : CForm(Owner)
{
  // Recherche toutes les devises Européenne
  CDevise  *pDeviseInfos;
  TStrings *pItems = CEditDevise::CM_LstDevises;
  for(int i=pItems->Count-1; i>=0; i--) {
    pDeviseInfos = (CDevise*)pItems->Objects[i];
    if ( pDeviseInfos->EstDeviseEuro) lbDevises->Items->Add( pDeviseInfos->CodeISO);
  }
  // Sélectionne la ligne du Franc
  for( int i=lbDevises->Items->Count-1; i>=0; i--)
    if ( DeviseFranc.CodeISO==lbDevises->Items->Strings[i]) { lbDevises->ItemIndex=i; break; }
}
//---------------------------------------------------------------------------
void __fastcall TfrmTauxEuro::lbDevisesDrawItem(TWinControl *Control,
      int Index, TRect &Rect, TOwnerDrawState State)
{
  try {
    CDevise devise( DEVCODE( lbDevises->Items->Strings[ Index], true));
    TCanvas *pCanvas = lbDevises->Canvas;
             pCanvas->FillRect( Rect);
    // Affichage du code ISO
    int x = (( pnlCodeISO->Width - pCanvas->TextWidth( devise.CodeISO)) / 2) + pnlCodeISO->Left + Rect.Left;
    pCanvas->TextOut( x, Rect.Top, devise.CodeISO);
    // Affichage du pays
        x = pnlPays->Left + Rect.Left + 6;
    pCanvas->TextOut( x, Rect.Top, devise.Pays);
    // Affichage de la devise
        x = pnlCodeISO->Width + pnlDevise->Left + Rect.Left + 6;
    pCanvas->TextOut( x, Rect.Top, devise.Nom);
    // Affichage du taux de conversion
        x = pnlCodeISO->Width + pnlPays->Width + Rect.Left - pCanvas->TextWidth( DeviseTauxToStr( devise.Taux)) - 16;
    pCanvas->TextOut( x, Rect.Top, DeviseTauxToStr( devise.Taux));
    // Affichage des traits verticaux
    pCanvas->Pen->Color = clBtnShadow;
        x = pnlCodeISO->Width + Rect.Left - 2;
    pCanvas->MoveTo( x, Rect.Top); pCanvas->LineTo( x, Rect.Bottom);
        x = pnlCodeISO->Width + pnlDevise->Left + Rect.Left - 2;
    pCanvas->MoveTo( x, Rect.Top); pCanvas->LineTo( x, Rect.Bottom);
        x = pnlCodeISO->Width + pnlPays->Width + Rect.Left - pnlTaux->Width - 2;
    pCanvas->MoveTo( x, Rect.Top); pCanvas->LineTo( x, Rect.Bottom);

  } catch ( Exception &e) {
    throw EUser( TAG(10), e);
  }
}
//---------------------------------------------------------------------------

